## 1.条件语句 ##
flag = False
name = 'luren'
if name == 'python':            # 判断变量是否为 python
    flag = True                 # 条件成立时设置标志为真
    print ('welcome boss')      # 并输出欢迎信息
else:
    print (name)                # 条件不成立时输出变量名称

##1.1. 由于 python 并不支持 switch 语句，所以多个条件判断，只能用 elif 来实现
num = 5
if num == 3:                    # 判断num的值
    print ('boss')
elif num == 2:
    print ('user')
elif num == 1:
    print ('worker')
elif num < 0:                   # 值小于零时输出
    print ('error')
else:
    print ('roadman')           # 条件均不成立时输出

## 2.While 循环语句 ##
count = 0
while (count < 9):
    print('The count is:', count)
    count = count + 1

##2.1. while 语句时还有另外两个重要的命令 continue，break 来跳过循环，continue 用于跳过该次循环，break 则是用于退出循环
i = 1
while i < 10:
    i += 1
    if i % 2 > 0:   # 非双数时跳过输出
        continue
    print(i)        # 输出双数2、4、6、8、10
i = 1
while 1:            # 循环条件为1必定成立
    print(i)        # 输出1~10
    i += 1
    if i > 10:      # 当i大于10时跳出循环
        break

##2.2. 循环使用 else 语句，while … else 在循环条件为 false 时执行 else 语句块：
count = 0
while count < 5:
   print (count, " is  less than 5")
   count = count + 1
else:
   print (count, " is not less than 5")

## 3.for 循环语句 ##
##3.1. Python for循环可以遍历任何序列的项目，如一个列表或者一个字符串。
for letter in 'Python':  # 第一个实例
    print("当前字母: %s" % letter)
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:  # 第二个实例
    print('当前水果: %s' % fruit)

##3.2. 通过序列索引迭代
# range 是一个内置函数，用于生成一个整数序列，常用于 for 循环中。
print(range(3))
fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print ('当前水果 : %s' % fruits[index])

##3.3. 循环使用 else 语句
# 在 python 中，for … else 表示这样的意思，for 中的语句和普通的没有区别，else 中的语句会在循环正常执行完
#（即 for 不是通过 break 跳出而中断的）的情况下执行，while … else 也是一样。
for num in range(10,20):  # 迭代 10 到 20 (不包含) 之间的数字
   for i in range(2,num): # 根据因子迭代
      if num%i == 0:      # 确定第一个因子
         j=num/i          # 计算第二个因子
         print ('%d 等于 %d * %d' % (num,i,j))
         break            # 跳出当前循环
   else:                  # 循环的 else 部分
      print ('%d 是一个质数' % num)

## 4.循环嵌套 ##
# Python 语言允许在一个循环体里面嵌入另一个循环。
# 以下实例使用了嵌套循环输出2~100之间的素数
i = 2
while(i < 100):
   j = 2
   while(j <= (i/j)):
      if not(i%j): break
      j = j + 1
   if (j > i/j) : print (i, " 是素数")
   i = i + 1

## 4.break 语句 ##
# Python break语句，就像在C语言中，打破了最小封闭for或while循环。
# break语句用来终止循环语句，即循环条件没有False条件或者序列还没被完全递归完，也会停止执行循环语句。
# break语句用在while和for循环中。
# 如果您使用嵌套循环，break语句将停止执行最深层的循环，并开始执行下一行代码。
for letter in 'Python':  # 第一个实例
    if letter == 'h':
        break
    print('当前字母 :', letter)

var = 10  # 第二个实例
while var > 0:
    print('当前变量值 :', var)
    var = var - 1
    if var == 5:  # 当变量 var 等于 5 时退出循环
        break

## 5.continue 语句 ##
# Python continue 语句跳出本次循环，而break跳出整个循环。
# continue 语句用来告诉Python跳过当前循环的剩余语句，然后继续进行下一轮循环。
# continue语句用在while和for循环中。
for letter in 'Python':  # 第一个实例
    if letter == 'h':
        continue
    print('当前字母 :', letter)

var = 10  # 第二个实例
while var > 0:
    var = var - 1
    if var == 5:
        continue
    print('当前变量值 :', var)

## 6.pass 语句 ##
# Python pass 是空语句，是为了保持程序结构的完整性。
# pass 不做任何事情，一般用做占位语句。
for letter in 'Python':
   if letter == 'h':
      pass
      print ('这是 pass 块')
   print ('当前字母 :', letter)
